// 类型定义文件

// 命名空间和Pod组合的接口定义
export interface NamespacePodPair {
  namespace: string
  pod: string
  displayName?: string // 可选的显示名称
}

// 日志查询参数
export interface LogQueryParams {
  namespace: string
  pod: string
  startTime: string
  endTime: string
  keyword: string
}

// 组件属性定义
export interface LokiLogViewerProps {
  // 基础配置
  title?: string                // 组件标题，默认为"Loki日志查询工具"
  height?: string | number      // 组件高度，默认为"100%"
  width?: string | number       // 组件宽度，默认为"100%"
  
  // 数据源配置 - 支持两种方式传入：单个namespace/pod或多个namespace/pod组合
  namespace?: string            // 单个命名空间（与pod一起使用，向后兼容）
  pod?: string                  // 单个Pod名称（与namespace一起使用，向后兼容）
  namespacePodPairs?: NamespacePodPair[] // 多个命名空间和Pod组合
  
  // 终端配置
  terminalOptions?: {
    fontSize?: number           // 字体大小，默认为12
    lineHeight?: number         // 行高，默认为1.2
    scrollback?: number         // 滚动历史，默认为5000
    theme?: {
      background?: string       // 背景色，默认为"#1e1e1e"
      foreground?: string       // 前景色，默认为"#f8f8f8"
    }
    rows?: number              // 行数，默认为30
    cols?: number              // 列数，默认为120
  }
  
  // 功能配置
  autoRefreshInterval?: number  // 实时模式刷新间隔(毫秒)，默认为5000
  defaultTimeRange?: number     // 默认时间范围(分钟)，默认为60
  lokiApiBaseUrl?: string       // Loki API基础URL，默认使用服务中配置的URL
  showDownloadButton?: boolean  // 是否显示下载按钮，默认为true
  showLiveModeButton?: boolean  // 是否显示实时模式按钮，默认为true
  showClearButton?: boolean     // 是否显示清空按钮，默认为true
  
  // 自定义样式
  customClass?: string          // 自定义CSS类名
}

// 组件事件定义
export interface LokiLogViewerEvents {
  onLogsLoaded?: (logs: string[]) => void  // 日志加载完成事件
  onError?: (error: any) => void           // 错误事件
  onLiveModeChange?: (isLive: boolean) => void // 实时模式变更事件
}